// reverse and speed up slightly
hspeed = -hspeed * 1.05;

// spin: hit position steers the rebound
vspeed = (y - other.y) / 12;

// never fully flat
if (vspeed == 0) vspeed = 1;